import axios from "axios";
import {HOST} from './api'
import Vue from 'vue'
//创建http类
class Http {

  request(url, method = 'get', data = {}) {
    let options = {
      url,
      method,
      baseURL: HOST
    }
    if (method === 'get') {
      options = {
        ...options,
        params: data
      }
    } else if (method === 'post') {
      options = {
        ...options,
        data
      }
    }
    //创建请求
    const instance = axios.create()
    //配置拦截器
    //请求拦截
    instance.interceptors.request.use(config=>{
      let cookie=localStorage.getItem('cookie')
      if(cookie) config.params['cookie']=cookie
      return config
    })
    //响应拦截
    instance.interceptors.response.use(response => {
      //返回请求到的数据
      return response.data
    }, err => {
      console.log('响应出错了' + err)
      return err
    })
    //发送请求
    return instance.request(options)
  }

  //get请求
  get(url, data = {}) {
    return this.request(url, 'get', data)
  }

  //post请求
  post(url, data = {}) {
    return this.request(url, 'post', data)
  }
}

export default new Http()


// const http = axios.create({
//   baseURL: 'http://localhost:8080/api',
//   timeout: 5000,
// })

//配置请求拦截
// http.interceptors.request.use(config => {
//   //在请求时做一些操作
//   return config
// }, err => {
//   return err
// })

//响应拦截
// http.interceptors.response.use(response => {
//   //返回请求到的数据
//   return response.data
// }, err => {
//   console.log('响应出错了' + err)
//   if (err && err.response) {
//     switch (err.response.status) {
//       case 404:
//         err.message = '请求路径错误'
//         break
//       case 500:
//         err.message = '服务器错误'
//         break
//     }
//   }
//   return err
// })

// export default http